package com.n5x.model.user;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class UserDisCountExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public UserDisCountExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("ID is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("ID is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(String value) {
            addCriterion("ID =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(String value) {
            addCriterion("ID <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(String value) {
            addCriterion("ID >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(String value) {
            addCriterion("ID >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(String value) {
            addCriterion("ID <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(String value) {
            addCriterion("ID <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLike(String value) {
            addCriterion("ID like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotLike(String value) {
            addCriterion("ID not like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<String> values) {
            addCriterion("ID in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<String> values) {
            addCriterion("ID not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(String value1, String value2) {
            addCriterion("ID between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(String value1, String value2) {
            addCriterion("ID not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andFkDiscountIdIsNull() {
            addCriterion("FK_DISCOUNT_ID is null");
            return (Criteria) this;
        }

        public Criteria andFkDiscountIdIsNotNull() {
            addCriterion("FK_DISCOUNT_ID is not null");
            return (Criteria) this;
        }

        public Criteria andFkDiscountIdEqualTo(String value) {
            addCriterion("FK_DISCOUNT_ID =", value, "fkDiscountId");
            return (Criteria) this;
        }

        public Criteria andFkDiscountIdNotEqualTo(String value) {
            addCriterion("FK_DISCOUNT_ID <>", value, "fkDiscountId");
            return (Criteria) this;
        }

        public Criteria andFkDiscountIdGreaterThan(String value) {
            addCriterion("FK_DISCOUNT_ID >", value, "fkDiscountId");
            return (Criteria) this;
        }

        public Criteria andFkDiscountIdGreaterThanOrEqualTo(String value) {
            addCriterion("FK_DISCOUNT_ID >=", value, "fkDiscountId");
            return (Criteria) this;
        }

        public Criteria andFkDiscountIdLessThan(String value) {
            addCriterion("FK_DISCOUNT_ID <", value, "fkDiscountId");
            return (Criteria) this;
        }

        public Criteria andFkDiscountIdLessThanOrEqualTo(String value) {
            addCriterion("FK_DISCOUNT_ID <=", value, "fkDiscountId");
            return (Criteria) this;
        }

        public Criteria andFkDiscountIdLike(String value) {
            addCriterion("FK_DISCOUNT_ID like", value, "fkDiscountId");
            return (Criteria) this;
        }

        public Criteria andFkDiscountIdNotLike(String value) {
            addCriterion("FK_DISCOUNT_ID not like", value, "fkDiscountId");
            return (Criteria) this;
        }

        public Criteria andFkDiscountIdIn(List<String> values) {
            addCriterion("FK_DISCOUNT_ID in", values, "fkDiscountId");
            return (Criteria) this;
        }

        public Criteria andFkDiscountIdNotIn(List<String> values) {
            addCriterion("FK_DISCOUNT_ID not in", values, "fkDiscountId");
            return (Criteria) this;
        }

        public Criteria andFkDiscountIdBetween(String value1, String value2) {
            addCriterion("FK_DISCOUNT_ID between", value1, value2, "fkDiscountId");
            return (Criteria) this;
        }

        public Criteria andFkDiscountIdNotBetween(String value1, String value2) {
            addCriterion("FK_DISCOUNT_ID not between", value1, value2, "fkDiscountId");
            return (Criteria) this;
        }

        public Criteria andDiscountTypeIsNull() {
            addCriterion("DISCOUNT_TYPE is null");
            return (Criteria) this;
        }

        public Criteria andDiscountTypeIsNotNull() {
            addCriterion("DISCOUNT_TYPE is not null");
            return (Criteria) this;
        }

        public Criteria andDiscountTypeEqualTo(String value) {
            addCriterion("DISCOUNT_TYPE =", value, "discountType");
            return (Criteria) this;
        }

        public Criteria andDiscountTypeNotEqualTo(String value) {
            addCriterion("DISCOUNT_TYPE <>", value, "discountType");
            return (Criteria) this;
        }

        public Criteria andDiscountTypeGreaterThan(String value) {
            addCriterion("DISCOUNT_TYPE >", value, "discountType");
            return (Criteria) this;
        }

        public Criteria andDiscountTypeGreaterThanOrEqualTo(String value) {
            addCriterion("DISCOUNT_TYPE >=", value, "discountType");
            return (Criteria) this;
        }

        public Criteria andDiscountTypeLessThan(String value) {
            addCriterion("DISCOUNT_TYPE <", value, "discountType");
            return (Criteria) this;
        }

        public Criteria andDiscountTypeLessThanOrEqualTo(String value) {
            addCriterion("DISCOUNT_TYPE <=", value, "discountType");
            return (Criteria) this;
        }

        public Criteria andDiscountTypeLike(String value) {
            addCriterion("DISCOUNT_TYPE like", value, "discountType");
            return (Criteria) this;
        }

        public Criteria andDiscountTypeNotLike(String value) {
            addCriterion("DISCOUNT_TYPE not like", value, "discountType");
            return (Criteria) this;
        }

        public Criteria andDiscountTypeIn(List<String> values) {
            addCriterion("DISCOUNT_TYPE in", values, "discountType");
            return (Criteria) this;
        }

        public Criteria andDiscountTypeNotIn(List<String> values) {
            addCriterion("DISCOUNT_TYPE not in", values, "discountType");
            return (Criteria) this;
        }

        public Criteria andDiscountTypeBetween(String value1, String value2) {
            addCriterion("DISCOUNT_TYPE between", value1, value2, "discountType");
            return (Criteria) this;
        }

        public Criteria andDiscountTypeNotBetween(String value1, String value2) {
            addCriterion("DISCOUNT_TYPE not between", value1, value2, "discountType");
            return (Criteria) this;
        }

        public Criteria andFkUserIsNull() {
            addCriterion("FK_USER is null");
            return (Criteria) this;
        }

        public Criteria andFkUserIsNotNull() {
            addCriterion("FK_USER is not null");
            return (Criteria) this;
        }

        public Criteria andFkUserEqualTo(String value) {
            addCriterion("FK_USER =", value, "fkUser");
            return (Criteria) this;
        }

        public Criteria andFkUserNotEqualTo(String value) {
            addCriterion("FK_USER <>", value, "fkUser");
            return (Criteria) this;
        }

        public Criteria andFkUserGreaterThan(String value) {
            addCriterion("FK_USER >", value, "fkUser");
            return (Criteria) this;
        }

        public Criteria andFkUserGreaterThanOrEqualTo(String value) {
            addCriterion("FK_USER >=", value, "fkUser");
            return (Criteria) this;
        }

        public Criteria andFkUserLessThan(String value) {
            addCriterion("FK_USER <", value, "fkUser");
            return (Criteria) this;
        }

        public Criteria andFkUserLessThanOrEqualTo(String value) {
            addCriterion("FK_USER <=", value, "fkUser");
            return (Criteria) this;
        }

        public Criteria andFkUserLike(String value) {
            addCriterion("FK_USER like", value, "fkUser");
            return (Criteria) this;
        }

        public Criteria andFkUserNotLike(String value) {
            addCriterion("FK_USER not like", value, "fkUser");
            return (Criteria) this;
        }

        public Criteria andFkUserIn(List<String> values) {
            addCriterion("FK_USER in", values, "fkUser");
            return (Criteria) this;
        }

        public Criteria andFkUserNotIn(List<String> values) {
            addCriterion("FK_USER not in", values, "fkUser");
            return (Criteria) this;
        }

        public Criteria andFkUserBetween(String value1, String value2) {
            addCriterion("FK_USER between", value1, value2, "fkUser");
            return (Criteria) this;
        }

        public Criteria andFkUserNotBetween(String value1, String value2) {
            addCriterion("FK_USER not between", value1, value2, "fkUser");
            return (Criteria) this;
        }

        public Criteria andReceiptTimeIsNull() {
            addCriterion("RECEIPT_TIME is null");
            return (Criteria) this;
        }

        public Criteria andReceiptTimeIsNotNull() {
            addCriterion("RECEIPT_TIME is not null");
            return (Criteria) this;
        }

        public Criteria andReceiptTimeEqualTo(Date value) {
            addCriterion("RECEIPT_TIME =", value, "receiptTime");
            return (Criteria) this;
        }

        public Criteria andReceiptTimeNotEqualTo(Date value) {
            addCriterion("RECEIPT_TIME <>", value, "receiptTime");
            return (Criteria) this;
        }

        public Criteria andReceiptTimeGreaterThan(Date value) {
            addCriterion("RECEIPT_TIME >", value, "receiptTime");
            return (Criteria) this;
        }

        public Criteria andReceiptTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("RECEIPT_TIME >=", value, "receiptTime");
            return (Criteria) this;
        }

        public Criteria andReceiptTimeLessThan(Date value) {
            addCriterion("RECEIPT_TIME <", value, "receiptTime");
            return (Criteria) this;
        }

        public Criteria andReceiptTimeLessThanOrEqualTo(Date value) {
            addCriterion("RECEIPT_TIME <=", value, "receiptTime");
            return (Criteria) this;
        }

        public Criteria andReceiptTimeIn(List<Date> values) {
            addCriterion("RECEIPT_TIME in", values, "receiptTime");
            return (Criteria) this;
        }

        public Criteria andReceiptTimeNotIn(List<Date> values) {
            addCriterion("RECEIPT_TIME not in", values, "receiptTime");
            return (Criteria) this;
        }

        public Criteria andReceiptTimeBetween(Date value1, Date value2) {
            addCriterion("RECEIPT_TIME between", value1, value2, "receiptTime");
            return (Criteria) this;
        }

        public Criteria andReceiptTimeNotBetween(Date value1, Date value2) {
            addCriterion("RECEIPT_TIME not between", value1, value2, "receiptTime");
            return (Criteria) this;
        }

        public Criteria andUseTimeIsNull() {
            addCriterion("USE_TIME is null");
            return (Criteria) this;
        }

        public Criteria andUseTimeIsNotNull() {
            addCriterion("USE_TIME is not null");
            return (Criteria) this;
        }

        public Criteria andUseTimeEqualTo(Date value) {
            addCriterion("USE_TIME =", value, "useTime");
            return (Criteria) this;
        }

        public Criteria andUseTimeNotEqualTo(Date value) {
            addCriterion("USE_TIME <>", value, "useTime");
            return (Criteria) this;
        }

        public Criteria andUseTimeGreaterThan(Date value) {
            addCriterion("USE_TIME >", value, "useTime");
            return (Criteria) this;
        }

        public Criteria andUseTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("USE_TIME >=", value, "useTime");
            return (Criteria) this;
        }

        public Criteria andUseTimeLessThan(Date value) {
            addCriterion("USE_TIME <", value, "useTime");
            return (Criteria) this;
        }

        public Criteria andUseTimeLessThanOrEqualTo(Date value) {
            addCriterion("USE_TIME <=", value, "useTime");
            return (Criteria) this;
        }

        public Criteria andUseTimeIn(List<Date> values) {
            addCriterion("USE_TIME in", values, "useTime");
            return (Criteria) this;
        }

        public Criteria andUseTimeNotIn(List<Date> values) {
            addCriterion("USE_TIME not in", values, "useTime");
            return (Criteria) this;
        }

        public Criteria andUseTimeBetween(Date value1, Date value2) {
            addCriterion("USE_TIME between", value1, value2, "useTime");
            return (Criteria) this;
        }

        public Criteria andUseTimeNotBetween(Date value1, Date value2) {
            addCriterion("USE_TIME not between", value1, value2, "useTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("CREATE_TIME is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("CREATE_TIME is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("CREATE_TIME =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("CREATE_TIME <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("CREATE_TIME >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("CREATE_TIME >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("CREATE_TIME <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("CREATE_TIME <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("CREATE_TIME in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("CREATE_TIME not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("CREATE_TIME between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("CREATE_TIME not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andLastUpdateTimeIsNull() {
            addCriterion("LAST_UPDATE_TIME is null");
            return (Criteria) this;
        }

        public Criteria andLastUpdateTimeIsNotNull() {
            addCriterion("LAST_UPDATE_TIME is not null");
            return (Criteria) this;
        }

        public Criteria andLastUpdateTimeEqualTo(Date value) {
            addCriterion("LAST_UPDATE_TIME =", value, "lastUpdateTime");
            return (Criteria) this;
        }

        public Criteria andLastUpdateTimeNotEqualTo(Date value) {
            addCriterion("LAST_UPDATE_TIME <>", value, "lastUpdateTime");
            return (Criteria) this;
        }

        public Criteria andLastUpdateTimeGreaterThan(Date value) {
            addCriterion("LAST_UPDATE_TIME >", value, "lastUpdateTime");
            return (Criteria) this;
        }

        public Criteria andLastUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("LAST_UPDATE_TIME >=", value, "lastUpdateTime");
            return (Criteria) this;
        }

        public Criteria andLastUpdateTimeLessThan(Date value) {
            addCriterion("LAST_UPDATE_TIME <", value, "lastUpdateTime");
            return (Criteria) this;
        }

        public Criteria andLastUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("LAST_UPDATE_TIME <=", value, "lastUpdateTime");
            return (Criteria) this;
        }

        public Criteria andLastUpdateTimeIn(List<Date> values) {
            addCriterion("LAST_UPDATE_TIME in", values, "lastUpdateTime");
            return (Criteria) this;
        }

        public Criteria andLastUpdateTimeNotIn(List<Date> values) {
            addCriterion("LAST_UPDATE_TIME not in", values, "lastUpdateTime");
            return (Criteria) this;
        }

        public Criteria andLastUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("LAST_UPDATE_TIME between", value1, value2, "lastUpdateTime");
            return (Criteria) this;
        }

        public Criteria andLastUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("LAST_UPDATE_TIME not between", value1, value2, "lastUpdateTime");
            return (Criteria) this;
        }

        public Criteria andDisableIsNull() {
            addCriterion("DISABLE is null");
            return (Criteria) this;
        }

        public Criteria andDisableIsNotNull() {
            addCriterion("DISABLE is not null");
            return (Criteria) this;
        }

        public Criteria andDisableEqualTo(Boolean value) {
            addCriterion("DISABLE =", value, "disable");
            return (Criteria) this;
        }

        public Criteria andDisableNotEqualTo(Boolean value) {
            addCriterion("DISABLE <>", value, "disable");
            return (Criteria) this;
        }

        public Criteria andDisableGreaterThan(Boolean value) {
            addCriterion("DISABLE >", value, "disable");
            return (Criteria) this;
        }

        public Criteria andDisableGreaterThanOrEqualTo(Boolean value) {
            addCriterion("DISABLE >=", value, "disable");
            return (Criteria) this;
        }

        public Criteria andDisableLessThan(Boolean value) {
            addCriterion("DISABLE <", value, "disable");
            return (Criteria) this;
        }

        public Criteria andDisableLessThanOrEqualTo(Boolean value) {
            addCriterion("DISABLE <=", value, "disable");
            return (Criteria) this;
        }

        public Criteria andDisableIn(List<Boolean> values) {
            addCriterion("DISABLE in", values, "disable");
            return (Criteria) this;
        }

        public Criteria andDisableNotIn(List<Boolean> values) {
            addCriterion("DISABLE not in", values, "disable");
            return (Criteria) this;
        }

        public Criteria andDisableBetween(Boolean value1, Boolean value2) {
            addCriterion("DISABLE between", value1, value2, "disable");
            return (Criteria) this;
        }

        public Criteria andDisableNotBetween(Boolean value1, Boolean value2) {
            addCriterion("DISABLE not between", value1, value2, "disable");
            return (Criteria) this;
        }

        public Criteria andDiscountNameIsNull() {
            addCriterion("DISCOUNT_NAME is null");
            return (Criteria) this;
        }

        public Criteria andDiscountNameIsNotNull() {
            addCriterion("DISCOUNT_NAME is not null");
            return (Criteria) this;
        }

        public Criteria andDiscountNameEqualTo(String value) {
            addCriterion("DISCOUNT_NAME =", value, "discountName");
            return (Criteria) this;
        }

        public Criteria andDiscountNameNotEqualTo(String value) {
            addCriterion("DISCOUNT_NAME <>", value, "discountName");
            return (Criteria) this;
        }

        public Criteria andDiscountNameGreaterThan(String value) {
            addCriterion("DISCOUNT_NAME >", value, "discountName");
            return (Criteria) this;
        }

        public Criteria andDiscountNameGreaterThanOrEqualTo(String value) {
            addCriterion("DISCOUNT_NAME >=", value, "discountName");
            return (Criteria) this;
        }

        public Criteria andDiscountNameLessThan(String value) {
            addCriterion("DISCOUNT_NAME <", value, "discountName");
            return (Criteria) this;
        }

        public Criteria andDiscountNameLessThanOrEqualTo(String value) {
            addCriterion("DISCOUNT_NAME <=", value, "discountName");
            return (Criteria) this;
        }

        public Criteria andDiscountNameLike(String value) {
            addCriterion("DISCOUNT_NAME like", value, "discountName");
            return (Criteria) this;
        }

        public Criteria andDiscountNameNotLike(String value) {
            addCriterion("DISCOUNT_NAME not like", value, "discountName");
            return (Criteria) this;
        }

        public Criteria andDiscountNameIn(List<String> values) {
            addCriterion("DISCOUNT_NAME in", values, "discountName");
            return (Criteria) this;
        }

        public Criteria andDiscountNameNotIn(List<String> values) {
            addCriterion("DISCOUNT_NAME not in", values, "discountName");
            return (Criteria) this;
        }

        public Criteria andDiscountNameBetween(String value1, String value2) {
            addCriterion("DISCOUNT_NAME between", value1, value2, "discountName");
            return (Criteria) this;
        }

        public Criteria andDiscountNameNotBetween(String value1, String value2) {
            addCriterion("DISCOUNT_NAME not between", value1, value2, "discountName");
            return (Criteria) this;
        }

        public Criteria andDiscountTargetPriceIsNull() {
            addCriterion("DISCOUNT_TARGET_PRICE is null");
            return (Criteria) this;
        }

        public Criteria andDiscountTargetPriceIsNotNull() {
            addCriterion("DISCOUNT_TARGET_PRICE is not null");
            return (Criteria) this;
        }

        public Criteria andDiscountTargetPriceEqualTo(BigDecimal value) {
            addCriterion("DISCOUNT_TARGET_PRICE =", value, "discountTargetPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountTargetPriceNotEqualTo(BigDecimal value) {
            addCriterion("DISCOUNT_TARGET_PRICE <>", value, "discountTargetPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountTargetPriceGreaterThan(BigDecimal value) {
            addCriterion("DISCOUNT_TARGET_PRICE >", value, "discountTargetPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountTargetPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("DISCOUNT_TARGET_PRICE >=", value, "discountTargetPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountTargetPriceLessThan(BigDecimal value) {
            addCriterion("DISCOUNT_TARGET_PRICE <", value, "discountTargetPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountTargetPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("DISCOUNT_TARGET_PRICE <=", value, "discountTargetPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountTargetPriceIn(List<BigDecimal> values) {
            addCriterion("DISCOUNT_TARGET_PRICE in", values, "discountTargetPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountTargetPriceNotIn(List<BigDecimal> values) {
            addCriterion("DISCOUNT_TARGET_PRICE not in", values, "discountTargetPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountTargetPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("DISCOUNT_TARGET_PRICE between", value1, value2, "discountTargetPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountTargetPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("DISCOUNT_TARGET_PRICE not between", value1, value2, "discountTargetPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceIsNull() {
            addCriterion("DISCOUNT_PRICE is null");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceIsNotNull() {
            addCriterion("DISCOUNT_PRICE is not null");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceEqualTo(BigDecimal value) {
            addCriterion("DISCOUNT_PRICE =", value, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceNotEqualTo(BigDecimal value) {
            addCriterion("DISCOUNT_PRICE <>", value, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceGreaterThan(BigDecimal value) {
            addCriterion("DISCOUNT_PRICE >", value, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("DISCOUNT_PRICE >=", value, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceLessThan(BigDecimal value) {
            addCriterion("DISCOUNT_PRICE <", value, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("DISCOUNT_PRICE <=", value, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceIn(List<BigDecimal> values) {
            addCriterion("DISCOUNT_PRICE in", values, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceNotIn(List<BigDecimal> values) {
            addCriterion("DISCOUNT_PRICE not in", values, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("DISCOUNT_PRICE between", value1, value2, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("DISCOUNT_PRICE not between", value1, value2, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountVaildTimeIsNull() {
            addCriterion("DISCOUNT_VAILD_TIME is null");
            return (Criteria) this;
        }

        public Criteria andDiscountVaildTimeIsNotNull() {
            addCriterion("DISCOUNT_VAILD_TIME is not null");
            return (Criteria) this;
        }

        public Criteria andDiscountVaildTimeEqualTo(Date value) {
            addCriterion("DISCOUNT_VAILD_TIME =", value, "discountVaildTime");
            return (Criteria) this;
        }

        public Criteria andDiscountVaildTimeNotEqualTo(Date value) {
            addCriterion("DISCOUNT_VAILD_TIME <>", value, "discountVaildTime");
            return (Criteria) this;
        }

        public Criteria andDiscountVaildTimeGreaterThan(Date value) {
            addCriterion("DISCOUNT_VAILD_TIME >", value, "discountVaildTime");
            return (Criteria) this;
        }

        public Criteria andDiscountVaildTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("DISCOUNT_VAILD_TIME >=", value, "discountVaildTime");
            return (Criteria) this;
        }

        public Criteria andDiscountVaildTimeLessThan(Date value) {
            addCriterion("DISCOUNT_VAILD_TIME <", value, "discountVaildTime");
            return (Criteria) this;
        }

        public Criteria andDiscountVaildTimeLessThanOrEqualTo(Date value) {
            addCriterion("DISCOUNT_VAILD_TIME <=", value, "discountVaildTime");
            return (Criteria) this;
        }

        public Criteria andDiscountVaildTimeIn(List<Date> values) {
            addCriterion("DISCOUNT_VAILD_TIME in", values, "discountVaildTime");
            return (Criteria) this;
        }

        public Criteria andDiscountVaildTimeNotIn(List<Date> values) {
            addCriterion("DISCOUNT_VAILD_TIME not in", values, "discountVaildTime");
            return (Criteria) this;
        }

        public Criteria andDiscountVaildTimeBetween(Date value1, Date value2) {
            addCriterion("DISCOUNT_VAILD_TIME between", value1, value2, "discountVaildTime");
            return (Criteria) this;
        }

        public Criteria andDiscountVaildTimeNotBetween(Date value1, Date value2) {
            addCriterion("DISCOUNT_VAILD_TIME not between", value1, value2, "discountVaildTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}